127. Word Ladder - LeetCode Solution


BFS

Python Code:

class Solution:
    def ladderLength(self, beginWord: str, endWord: str, wordList: List[str]) -> int:
        level = 1
        frontier = [beginWord]
        wle = set(wordList)
        al = "abcdefghijklmnopqrstuvwxyz"
        while frontier:
            next = []
            for cur in frontier:
                if cur==endWord:
                    return level
                for i in range(len(cur)):
                    for ch in al:
                        next_word = cur[:i]+ch+cur[i+1:]
                        if next_word in wle:
                            wle.remove(next_word)
                            next.append(next_word)
            frontier = next
            level+=1
        return 0
            


Comments

Submit
0 Comments
More Questions

41C - Email address
1373D - Maximum Sum on Even Positions
1574C - Slay the Dragon
621A - Wet Shark and Odd and Even
1395A - Boboniu Likes to Color Balls
1637C - Andrew and Stones
1334B - Middle Class
260C - Balls and Boxes
1554A - Cherry
11B - Jumping Jack
716A - Crazy Computer
644A - Parliament of Berland
1657C - Bracket Sequence Deletion
1657B - XY Sequence
1009A - Game Shopping
1657A - Integer Moves
230B - T-primes
630A - Again Twenty Five
1234D - Distinct Characters Queries
1183A - Nearest Interesting Number
1009E - Intercity Travelling
1637B - MEX and Array
224A - Parallelepiped
964A - Splits
1615A - Closing The Gap
4C - Registration System
1321A - Contest for Robots
1451A - Subtract or Divide
1B - Spreadsheet
1177A - Digits Sequence (Easy Edition)